package Object;

import java.util.Objects;

// 假设我们有一个简单的类Animal，它包含基本数据类型和另一个对象的引用
public class Animal implements Cloneable {
    private String name;
    private int age;
    private Day day;//// 假设Day是另一个类，并且我们想要浅克隆它

    public Animal(String name, int age, Day day) {
        this.name = name;
        this.age = age;
        this.day = day;
    }

    public Animal() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Day getDay() {
        return day;
    }

    public void setDay(Day day) {
        this.day = day;
    }

    // 重写clone方法以实现浅克隆


    @Override
    protected Object clone() throws CloneNotSupportedException {
        //调用父类的clone方法
        //相当于java帮我们克隆一个对象,并把克隆之后的对象返回出去
        return super.clone();
    }

    // toString方法（可选，但有助于调试）
    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", day=" + day +
                '}';
    }
}
